package cn.rulian.base.common.bean;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.stereotype.Component;

import cn.rulian.base.common.property.BusinessProperty;
import freemarker.template.TemplateModelException;

/** 
 * 初始化Bean，主要用于完成项目的一些初始化工作。
 */

@Component
public class InitBean
{
	
	@Autowired
	private freemarker.template.Configuration configuration; //freemarker模板配置文件，在  org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration 中定义

	@Autowired
	ServerProperties serverProperties; //Servlet容器配置，此类是spring Boot自动配置机制中的的一个配置文件。
	
	@Autowired
	BusinessProperty pro; //业务参数
	
	/**
	 * 初始化工作
	 */
	@PostConstruct
	public void init()
	{
		setBasePath2FreemarkerConfig();
	}

	/**
	 * 向freemarker配置文件中放入公共变量basePath（当前应用根路径），以供所有模板页面使用。
	 */
	private void setBasePath2FreemarkerConfig()
	{
		try {
			String basePath = serverProperties.getContextPath(); //读取当前web应用的路径
			if(basePath==null)
			{
				basePath="";
			}
			configuration.setSharedVariable("basePath", basePath);
			
		} catch (TemplateModelException e) {
			e.printStackTrace();
		}
	}
	
}
